Information is the life blood of many enterprises. An enterprise will likely have many different data sources which contribute to the execution of its business and management of the environment in which business is conducted. Analysts have identified the term Knowledge Worker to mean staff employed by an enterprise to retrieve and analyze information pursuant to reporting on a current state of a situation or some other requirement. To execute their function effectively, the Knowledge Worker may require timely and effective access to complete information—often across multiple data sources. Server applications may require remote information in order to execute a process. Server applications may need even more timely information than a human. In addition, server applications may need information that is syntactically and semantically correct.
One way of achieving such a solution is to build a single database containing all the information required to solve a problem and combining it with a client application which supports querying the database for the included information. This solution may be adequate for solving closed problems, such as a systems monitoring solution or a configuration management database (CMDB). However, building a single database may have at least two significant limitations: (1) the data provider may become responsible for the content in the database, which may include keeping the data current, clean and complete; and (2) the scope of the data is limited to the database's schema, meaning that without life-cycling the schema, portions of the data can become out of date, irrelevant, or insufficient to answer to problem at hand.
Although a single database may be adequate in many circumstances, it may pose practical hurdles if several databases are created; for example, one database for IT, one database for financial control, one database for sales, etc. If an enterprise has many such databases, relationships can be dispersed across each of the databases and these databases could also include duplicate content and/or duplicate attributes.
Solutions which bridge multiple data sources may have to solve the problem of content and attribute collision in order to identify multi-source relationships. However, open problems may need open data. An example of an open problem is a search performed on the Internet for a desired topic.
The invention presented may be employed to solve the problems inherent in exposing content within and the relationships between large corporate data repositories in a timely cross-platform manner. The invention can also provide solutions to operating consumer internet services in an enterprise context—namely, how to manage authorization through Representational State Transfer (REST) web services and also how to wrap a service management framework around the same services so that consumers can be charged for using such services. REST web services may provide advantages such as simplifying the process of querying and obtaining data sources, but conventionally can also limit solutions to enterprise requirements.
The consumer internet has seen a significant rise in the evolution of web services and mash-ups in recent years. Social and search applications are two of many examples of this rise. Ajax is a programming style that many such web services use to retrieve, process, and render data. Many enterprises and vendors have been working on adopting these functionalities into the enterprise context. However, issues arise in achieving the operating context that is often important in an enterprise but of less import on the consumer internet—namely auditable access control, service management, data protection, context identity management, and cost allocation.